package cn.echase.ecare.yinfayun.domain.mapper;

import cn.echase.ecare.yinfayun.domain.dto.ElderStatisticsDto;
import cn.echase.ecare.yinfayun.domain.dto.StatisticsDto;
import cn.echase.ecare.yinfayun.domain.vo.CareItemVo;
import cn.echase.ecare.yinfayun.domain.vo.ElderAgeInfoVo;
import cn.echase.ecare.yinfayun.domain.vo.EldersAgeMaxAndMinVo;
import cn.echase.ecare.yinfayun.domain.vo.OrgElderCenterVo;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;

import java.util.List;

/**
 * 统计
 */
public interface OrgBaseInfoStatisticsMapper {

    /**
     * 查看楼栋长者年龄统计列表
     *
     * @param statisticsDto 查询条件
     * @return 楼栋长者年龄统计列表
     */
    @InterceptorIgnore(tenantLine = "true")
    List<ElderAgeInfoVo> getBuildingElderAge(StatisticsDto statisticsDto);

    /**
     * 获取机构长者年龄
     *
     * @param statisticsDto
     * @return
     */
    @InterceptorIgnore(tenantLine = "true")
    EldersAgeMaxAndMinVo getOrgElderAgeMaxAndMin(StatisticsDto statisticsDto);

    /**
     * 查看相应年龄段和楼栋中长者列表
     *
     * @param elderStatisticsDto 查询条件
     * @return 相应年龄段和楼栋中长者列表
     */
    @InterceptorIgnore(tenantLine = "true")
    List<OrgElderCenterVo> getElderAgeDetailList(ElderStatisticsDto elderStatisticsDto);

    /**
     * 查看相应照护等级和楼栋中长者列表
     *
     * @param elderStatisticsDto 查询条件
     * @return 相应照护等级和楼栋中长者列表
     */
    @InterceptorIgnore(tenantLine = "true")
    List<OrgElderCenterVo> getCareLevelElderList(ElderStatisticsDto elderStatisticsDto);

    /**
     * 获取长者的照护等级
     *
     * @param statisticsDto 参数
     * @return 结果
     */
    @InterceptorIgnore(tenantLine = "true")
    List<CareItemVo> getBuildingCareLevelList(StatisticsDto statisticsDto);

    /**
     * 获取机构的照护等级信息
     *
     * @param statisticsDto 参数
     * @return 结果
     */
    @InterceptorIgnore(tenantLine = "true")
    List<CareItemVo> getOrgCareLevelInfo(StatisticsDto statisticsDto);

}
